Make network.name_label == bridge name
authorTom Wilkie <tom.wilkie@gmail.com>
Thu, 29 Mar 2007 14:59:53 +0000 (15:59 +0100)
committerTom Wilkie <tom.wilkie@gmail.com>
Thu, 29 Mar 2007 14:59:53 +0000 (15:59 +0100)
signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>

tools/python/xen/xend/XendAPI.py
tools/python/xen/xend/XendNode.py

index 856a53f10ac5811b7450c4018820b1f2b73fd006..ff59cae102fcf108aae2022c720a0aef34883409 100644 (file)
@@ -1823,9 +1823,6 @@ class XendAPI(object):
     VM_metrics_attr_rw = []
     VM_metrics_methods = []
 
-    def VIF_metrics_get_all(self, session):
-        return self.VIF_get_all(session)
-
     def _VM_metrics_get(self, _, ref):
         return XendVMMetrics.get_by_uuid(ref)
 
@@ -2135,6 +2132,9 @@ class XendAPI(object):
     VIF_metrics_attr_rw = []
     VIF_metrics_methods = []
 
+    def VIF_metrics_get_all(self, session):
+        return self.VIF_get_all(session)
+
     def VIF_metrics_get_record(self, _, ref):
         vm = XendDomain.instance().get_vm_with_dev_uuid('vif', ref)
         if not vm:
index 887b1f1b8094803cf7d5512ee2f5fd136b5ab541..aad2ac7530d8adf393fa376c57fc5f03f97d4eb5 100644 (file)
@@ -143,8 +143,14 @@ class XendNode:
             for net_uuid, network in saved_networks.items():
                 self.network_create(network, False, net_uuid)
         else:
-            self.network_create({'name_label' : 'net0' }, False)
-
+            bridges = Brctl.get_state().keys()
+            for bridge in bridges:
+                self.network_create({'name_label' : bridge }, False)
+                
+        # Get a mapping from interface to bridge
+
+        if_to_br = dict(reduce(lambda ls,(b,ifs):[(i,b) for i in ifs] + ls,
+                               Brctl.get_state().items(), []))
         # initialise PIFs
         saved_pifs = self.state_store.load_state('pif')
         if saved_pifs:
@@ -174,8 +180,14 @@ class XendNode:
                                   pif_uuid, pif['network'], exn.pif_uuid)
         else:
             for name, mtu, mac in linux_get_phy_ifaces():
-                network = self.networks.values()[0]
-                self._PIF_create(name, mtu, -1, mac, network, False)
+                bridge_name = if_to_br.get(name, None)
+                if bridge_name is not None:
+                    networks = [network for
+                                network in self.networks.values()
+                                if network.get_name_label() == bridge_name]
+                    if len(networks) > 0:
+                        network = networks[0]
+                        self._PIF_create(name, mtu, -1, mac, network, False)
 
         # initialise storage
         saved_srs = self.state_store.load_state('sr')